home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / c80tcog.lbr / ATOI.CQ / atoi.c
Text File  |  1985-08-09  |  1KB  |  55 lines

  1. /* atoi - convert string s to integer */
  2. /* Version 1.1 1982/11/15 22:09    */
  3. /* Kernighan, Brian W. & Ritchie, Dennis M.
  4.     "The C Programming Language", Prentice-Hall,
  5. Englewood Cliffs, NJ, 1978, p. 58        */
  6.  
  7. #ifdef MAINLY
  8. #else
  9. #include "c80def.h"
  10. #endif
  11.  
  12. atoi(s) char *s;
  13. {
  14. register int i, n;
  15. register Boolean pos;
  16. static char Version[]= "Version 1.1 1982/11/15 22:09";
  17.  
  18. for (i=0; *s == ' ' || *s == '\t' || *s == '\n'; s++)
  19.     /* skip white space */;
  20. if (*s == '+' || *s == '-')
  21.     pos= *s++ == '+';
  22. else
  23.     pos= YES; 
  24. for (n= 0; '0' <= *s && *s <= '9'; s++) {
  25.     n*= 10;
  26.     n-= *s - '0';
  27.     }
  28. return(pos ? -n:n);
  29. }            /* atoi */
  30.  
  31. #ifdef MAINLY
  32. #else
  33. #ifdef CP_M
  34. extern FILE *STDIN, *STDOUT;
  35. #endif
  36. #include "printf.c"
  37. #define MAINLY
  38. #include "itoa.c"
  39. #include "strchr.c"
  40.  
  41. main() {
  42. register int i;
  43. char s[10];
  44.  
  45. for (i= -1; i < 0; i--)
  46.     if(atoi(itoa(i, s)) != i)
  47.         printf("Test failed for %d\n", i);
  48. for (i= (~0) >> 1; i; i--)
  49.     if (atoi(itoa(i,s)) != i)
  50.         printf("Test 2 failed for %d\n", i);
  51. }        /* main */
  52. abs(x) int x;
  53. {return(x < 0? -x:x);}
  54. #endif
  55.